package com.lancoo.cvas.mapper;

import com.lancoo.cvas.config.MybatisRedisCache;
import com.lancoo.cvas.entity.RuleCourse;
import com.lancoo.cvas.entity.RuleCourseProhibit;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.lancoo.cvas.entity.RuleCourseProhibitMajor;
import com.lancoo.cvas.pojo.dto.ArrangeCourseRuleDto;
import com.lancoo.cvas.pojo.dto.RuleCourseProhibitDto;
import com.lancoo.cvas.pojo.vo.getAllCourseProhibitVo;
import org.apache.ibatis.annotations.CacheNamespace;

import java.util.List;

/**
 * 课程禁排
 * 
 * @author liufeng
 * @email 1037383243@qq.com
 * @date 2023-12-04 11:54:00
 */
@CacheNamespace(implementation = MybatisRedisCache.class, eviction = MybatisRedisCache.class)
public interface RuleCourseProhibitMapper extends BaseMapper<RuleCourseProhibit> {

    List<String> fixCheck(Integer taskId, Long courseId, String schoolId, Long teachingClassId, int flag);

    List<RuleCourse> getAllCourseProhibit(Integer taskId, int deleted, String keyword);

    List<ArrangeCourseRuleDto> getArrangeCourseRuleByTaskId(Integer taskId);

    List<RuleCourseProhibitMajor> getCourseProhibitMajors(Integer taskId, Integer id);

    List<RuleCourseProhibitMajor> getCourseProhibitMajorsBatch(Integer taskId, List<Integer> rules);

    List<RuleCourseProhibit> getTeachingClassCourseProhibit(Integer taskId, String schoolId, Long courseId, Long teachingClassId);

    List<ArrangeCourseRuleDto> getCourseRuleByTeachingClass(Integer taskId, Long teachingClassId);
}
